<?php
/**
 * Created by PhpStorm
 * User: ZhouFurong
 * Date: 2021/1/16
 * Time: 17:03
 */

/**
 * 问题：
 * 希望为一个还没有值得变量赋一个默认的值。
 * 如果希望变量有一个硬编码的默认值，这个值可以被用户输入覆盖或通过一个环境变量覆盖，经常会这样做
 */

/**
 * 解决方案
 * 使用 isset() 为一个可能已经有值得变量赋一个默认值
 */

$default_cars = 'BenChi';

if (!isset($cars)) {
    $cars = $default_cars;
}

// 检测数值的另一个方法使用 array_keys_exists()
$param['bike'] = 'moBike';
$cars = array_key_exists('cars', $param) ? $param['cars'] : $default_cars;

$vehicles = ['cars' => null];
// array_key_exists() 返回 true， 因为这个键存在
$ake_result = array_key_exists('cars', $vehicles);
// isset() 返回 false，因为键相应的值为 NULL
$isset_result = isset($vehicles['cars']);

